The present exemplary embodiments relate to a stateful event-driven system and, more particularly, relate to a stateful event-driven system in a distributed (parallel) environment that may detect and compensate for out-of-order updates of the state-holding target objects and erroneous correlation outcomes.
In event stream applications, events flow through a network of components that perform various types of operations such as filtering, aggregation and transformation and produce a resulting output stream. When event processing is stateless, one can trivially parallelize it by replicating the associated components. This is not possible with stateful components when there exist dependencies between the events.
For stateful processing, multiple copies of the same component would need to maintain a consistent replicated state, which is nontrivial and may add significant overhead. Also, events must often be processed in a specific order, either because they have dependencies with one another or because the effect on the component's state depends on the processing order.
While event-driven systems are gaining considerable momentum in both academia and industry, no unified architecture has been proposed for a generic stateful event processor.